package com.distribution.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.distribution.system.domain.bo.Recommended;
import com.distribution.system.domain.entity.CmccDaProduct;
import com.distribution.system.domain.req.CmccDaProductAddReq;
import com.distribution.system.domain.req.CmccDaProductListReq;
import com.distribution.system.domain.req.CmccDaProductUpdateReq;
import com.distribution.system.domain.req.ReqResult;
import com.distribution.system.domain.vo.PlaceOrderImgVO;

import java.util.List;


/**
 * @author Liping Huo
 * @date 2023/5/22 12:06
 */
public interface CmccDaProductService extends IService<CmccDaProduct> {
    /**
     * @Author: GodLu
     * @Date: 2024/7/19 0:46
     * @Description: 检查是否为屏蔽地区
     * @param provinceCode 当前收货地址省份编码
     * @param cmccDaProduct 下单产品信息
     * @return: ReqResult
     */
    ReqResult checkBanArea(String provinceCode, CmccDaProduct cmccDaProduct);

    /**
     * 获取 推荐卡集合
     */
    List<Recommended> getRecommendedList(CmccDaProductListReq cmccDaProductListReq);

    void saveProduct(CmccDaProduct cmccDaProduct);

    CmccDaProduct getByProductCode(String productCode);


    PlaceOrderImgVO getPlaceOrderImgByProductCode(String productCode);

    String getLinkFailureStatus(String productCode);

    Integer getLimitActiveTime(String productCode);

    List<String> getLimitAreas(String productCode);

    List<CmccDaProduct> getProductListByQueryParam(CmccDaProductListReq cmccDaProductListReq);

    void removeProductById(Integer id);

    ReqResult onlineProductByCode(String productCode);

    ReqResult offlineProductByCode(String productCode);

    void updateProductById(CmccDaProductUpdateReq cmccDaProductUpdateReq);

    void addProduct(CmccDaProductAddReq cmccDaProductAddReq);

    void addMergeProduct(CmccDaProductAddReq cmccDaProductAddReq);

    List<Recommended> getCollectProductList(CmccDaProductListReq cmccDaProductListReq);
}
